Tổng quan Phát triển phần mềm linh hoạt

Cặp lập trình, một kỹ thuật phát triển nhanh được sử dụng bởi Lập trình cực hạn. Thông tin ghi chú trên nền.

Có rất nhiều cụ thể phát triển nhanh phương pháp. Nhất đẩy mạnh tinh thần đồng đội, cộng tác, và khả năng thích ứng quá trình trong suốt các sản phẩm phát triển sự sống, chu kỳ.Có nhiều phương pháp phát triển phần mềm linh hoạt. Đa số các phương pháp này cố gắng cực tiểu hóa rủi ro bằng cách phát triển phần mềm trong các khung thời gian ngắn, gọi là các bước lặp, mỗi bước lặp thường trong khoảng từ 1 đến 4 tuần. Mỗi bước lặp tự nó giống như một dự án phần mềm thu nhỏ, bao gồm tất cả các tác vụ cần thiết để cho ra nâng cấp mi-ni của chức năng mới: lập kế hoạch, phân tích yêu cầu, thiết kế, viết mã, kiểm thử, và viết tài liệu. Tuy một bước lặp có thể không bổ sung đủ chức năng để đảm bảo sự ra đời của sản phẩm cuối cùng, nhưng một dự án phần mềm linh hoạt nhằm đến việc cho ra phần mềm mới khi kết thúc mỗi bước lặp. Trong nhiều trường hợp, người ta đạt được mục tiêu này. Điều này đặc biệt đúng đối với phần mềm ứng dụng web. Cuối mỗi bước lặp, bất kể kết quả như thế nào, nhóm phát triển phần mềm cũng đánh giá lại các ưu tiên của dự án.

Các phương pháp phát triển phần mềm linh hoạt nhấn mạnh tầm quan trọng của giao tiếp thời gian thực, giao tiếp trực tiếp mặt-đối-mặt được đánh giá cao hơn giao tiếp qua các tài liệu viết. Hầu hết các đội phát triển linh hoạt được tập trung trong một môi trường có điều kiện thuận lợi cho việc giao tiếp, và các đội này bao gồm cả các lập trình viên và các "khách hàng" của họ (khách hàng là người định nghĩa sản phẩm; họ có thể là các quản lý sản phẩm, các nhà phân tích doanh nghiệp (business analyst), hoặc các khách hàng thực sự). Đội còn có thể bao gồm cả các chuyên gia test, thiết kế tương tác, những người viết tài liệu kỹ thuật, và các quản lý.

Các phương pháp phát triển phần mềm linh hoạt còn nhấn mạnh khả năng hoạt động của phần mềm như là phương thức chính yếu để đánh giá tiến độ. Cùng với việc đánh giá cao giao tiếp trực tiếp, các phương pháp tạo ra rất ít tài liệu khi so sánh với các phương pháp khác. Điều này dẫn đến phê phán rằng các phương pháp phát triển linh hoạt không có tính kỷ luật.

Lặp đi lặp lại, gia tăng và tiến hóa (Iterative, incremental và evolutionary)

Dự án thường sẽ chia thành các giai đoạn nhỏ (timebox), có đầy đủ các bước làm việc (ra kế hoạch, phân tích, thiết kế, lập trình, kiểm thử). Chúng được lặp đi lặp lại trong suốt dự án (chu kỳ từ 2-4 tuần).

Phần mềm chạy được là thước đo của tiến độ làm việc.

Hiệu quả và đối thoại mặt-đối-mặt

Người ta khuyến khích sự giao tiếp trực tiếp giữa các bên liên quan trong phương pháp Phát triển phần mềm linh hoạt.

Rất ngắn vòng lặp phản hồi và chu kỳ thích ứng

Một đặc điểm nổi bật của Phát triển phần mềm linh hoạt là các buổi "trao đổi hằng ngày" (daily stand-up). Trong khoảng thời gian ngắn (chẳng hạn 15 phút), các thành viên của nhóm sẽ cho biết mình đã làm được gì và sẽ làm gì hôm nay. Khó khăn cũng được nêu ra nếu có.

Tập trung vào chất lượng

Các công cụ như Tích hợp liên tục, kiểm thử tự động,... được áp dụng để tăng chất lượng của dự án.

Tài liệu tham khảo

WikiPedia: Phát triển phần mềm linh hoạt http://www.kohl.ca/blog/archives/000166.html http://www.acmqueue.com/modules.php?name=Content&p... http://www.acmqueue.com/modules.php?name=Content&p... http://www.ambysoft.com/books/agileModeling.html http://www.ambysoft.com/essays/whyAgileWorksFeedba... http://software-quality.blogspot.com/2006/10/risk-... http://www.ddj.com/dept/architect/193402902 http://www.informationweek.com/story/showArticle.j... http://agiletoolkit.libsyn.com http://www.methodsandtools.com/archive/archive.php...